package com.shurdroides.proyectofinal.server;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;
import android.widget.Toast;

import com.google.android.maps.Overlay;
import com.shurdroides.proyectofinal.constants.Constants;
import com.shurdroides.proyectofinal.map.MapHelper;
import com.shurdroides.proyectofinal.map.MyItems;
import com.shurdroides.proyectofinal.model.ElementoPosicionable;
import com.shurdroides.proyectofinal.model.PuntoMapa;

public class JsonDispatcher implements Constants{

	Context ctx;
	MyItems capa;
	List<Overlay> lista;
	
	public JsonDispatcher(Context ctx,MyItems misElementos, List<Overlay> lista) {
	this.ctx=ctx;
	this.capa=misElementos;
	this.lista=lista;
	}

	public void parse(JSONObject json) {
		//ejecutarlo en un thread o un async
		int tipo = HttpUtils.getTipoMensaje(json);
		switch (tipo) {
		case JSON.JSON_TIPO.TIPO_MENSAJE_ACTUALIZAR_CUEVA:
			if (parseRespuestaMensaje(json)==-1){
				Toast.makeText(ctx, "Error al actualizar cueva, ponte en contacto con el staff", Toast.LENGTH_SHORT).show();
			}
			break;
		case JSON.JSON_TIPO.TIPO_MENSAJE_ACTUALIZAR_POSICION_ELEMENTOS:
			parseActualizarElementos(json);
			break;
		case JSON.JSON_TIPO.TIPO_MENSAJE_ACTUALIZAR_RANKING:

			break;
		case JSON.JSON_TIPO.TIPO_MENSAJE_COGER_OBJETO:
			if (parseRespuestaMensaje(json)==-1){
				Toast.makeText(ctx, "Llegas tarde, otro usuario ya ha cogido el objeto", Toast.LENGTH_SHORT).show();
			}
			break;
		case JSON.JSON_TIPO.TIPO_MENSAJE_CREAR_CUENTA:
			if (parseRespuestaMensaje(json)==-1){
				Toast.makeText(ctx, "Error al crear la cuenta, ponte en contacto con el staff", Toast.LENGTH_SHORT).show();
			}
			break;
		}
	}

	private void parseActualizarElementos(JSONObject json) {
//		lista.remove(capa);
//		ArrayList<ElementoPosicionable> testObjetos=MapHelper.getGeoPointArrayFromJsonObjetos(s);
//		MapHelper.populateMapFromArrayElementos(misElementos, testObjetos);
//		lista.add(capa);
	}

	private int parseRespuestaMensaje(JSONObject json) {
		int res=0;
		try {
			res= json.getInt(JSON.RESULTADO);
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return res;
	}
	
	
	
}
